package com.funtl.screw.admin.api.feign;

import com.funtl.screw.admin.entity.SysDeptRelation;
import com.funtl.screw.admin.entity.SysRole;
import com.funtl.screw.common.core.constant.ServiceNameConstants;
import com.funtl.screw.common.core.util.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @author lusifer
 * @since 2019-09-07
 * <p>
 * 远程数据权限调用接口
 */
@FeignClient(contextId = "remoteDataScopeService", value = ServiceNameConstants.ADMIN_SERVICE)
public interface RemoteDataScopeService {

    /**
     * 通过角色ID 查询角色列表
     *
     * @param roleIdList 角色ID
     * @return list
     */
    @PostMapping("/role/getRoleList")
    ResponseResult<List<SysRole>> getRoleList(@RequestBody List<String> roleIdList);

    /**
     * 获取子级部门
     *
     * @param deptId 部门ID
     * @return list
     */
    @GetMapping("/dept/getDescendantList/{deptId}")
    ResponseResult<List<SysDeptRelation>> getDescendantList(@PathVariable("deptId") Long deptId);

}
